package main

import "fmt"

// func main() {
// 	//指针声明
// 	//var var_name *var-type
// 	var ip *int //指向整型
// 	var a int = 20
// 	ip = &a
// 	fmt.Printf("ip: %v\n", ip) //ip: 0xc00000e0a8 a的变量的地址/ip变量储存的指针地址
// 	fmt.Printf("ip: %v\n", *ip) //ip: 20

// 	var fp *float32 //指向浮点型
// 	var b float32 = 3.2
// 	fp = &b
// 	fmt.Printf("fp: %v\n", fp)
// 	fmt.Printf("fp: %v\n", *fp)
// }

//指向数组的指针
//语法：
//var ptr [MAX]*int; 表示数组里面的元素的类型是指针类型
const MAX int = 3

func main() {
	a := []int{1, 3, 5}
	var i int
	var ptr [MAX]*int
	fmt.Println(ptr) //[<nil> <nil> <nil>]
	for i = 0; i < MAX; i++ {
		ptr[i] = &a[i] //整数地址赋值给指针数组
	}
	for i = 0; i < MAX; i++ {
		fmt.Printf("a[%d] = %d\n", i, *ptr[i]) //a[0] = 1 a[1] = 3 a[2] = 5
	}
}
